X-Git-Url: http://git.hcoop.net/clinton/3d-models.git/blobdiff_plain/f9a12374ed46963b34ba5244addf5df1e43e6dae..62f36d7fac8cbca6552f2f17397e53e29f948cf4:/carriage%20adapter/itty-wilson.scad diff --git a/carriage adapter/itty-wilson.scad b/carriage adapter/itty-wilson.scad dissimilarity index 60% index 75cbb6c..f91b69e 100644 --- a/carriage adapter/itty-wilson.scad +++ b/carriage adapter/itty-wilson.scad @@ -1,125 +1,137 @@ -/* -min y = 0 -max y = 100 -min x = 1205 -max x = 1254 - -Makerfair X carriage plate adapter for the Wilson RepRap. -Copyright (c) 2015 Clinton Ebadi - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Measurements reverse engineered from -https://github.com/RickSisco/MakerFarm-Prusa-i3v-12-Inch - -Intended for use with the itty bitty dual extruder series. - -Source needs a good cleanup. Evil loops that don't take advantage of -the geometry of the object abound. - -*/ - -use - -carriage_height = 65; - -plate_width = 75; // wilson carriage is only 50mm wide! -plate_depth = 8; // wilson default depth = 8, makerfarm = 6 - -plate_cut_height = 6.5; -plate_cut_width = 6; -plate_cut_distance = 13; -plate_cut_center = 25.1; -plate_cut_y_offset = 27; -plate_cut_bolt = 3; -plate_cut_x_bolt_offset = 10.5 + plate_cut_bolt / 2; - -plate_height = carriage_height + plate_cut_height + plate_cut_y_offset; //100; - -lower_cut_y_offset = 5.33; // 5.325 in CAD -lower_bolt_x_offset = 1.5 + plate_cut_bolt / 2; -lower_bolt_y_offset = 3.275 + plate_cut_bolt / 2; - -carriage_bolt = 4; -carriage_hole_spacing = 24; -carriage_clearance = 20; // holes are 20mm from bottom of plate -carriage_y_offset = plate_cut_y_offset + plate_cut_height + carriage_clearance; -carriage_nut_depth = 2 * 3.2 + 0.1; // m4 nut depth + tolerance - -corner_radius = 3; // round off the corners to make it look nicer - -bump_strip = false; // generate holes to mount a strip to hit the end stop -- experimental / bad code - -module plate_outline () { - $fn = 16; - difference () { - minkowski () { - translate ([corner_radius, corner_radius, 0]) - square ([plate_width - corner_radius*2, plate_height - corner_radius*2]); - circle (r = corner_radius); - } - - // upper plate mount - translate ([0, plate_cut_y_offset, 0]) { - for (x = [-0.01, plate_cut_width + plate_cut_distance, plate_cut_width*2 + plate_cut_distance + plate_cut_center, plate_cut_width*3 + plate_cut_distance*2 + plate_cut_center + 0.01]) - translate ([x, 0, 0]) square ([plate_cut_width, plate_cut_height]); - - // looks like the bolt is at the midpoint between the cut outs - for (x = [plate_cut_x_bolt_offset, plate_width - plate_cut_x_bolt_offset]) - translate ([x, plate_cut_height / 2, 0]) circle (d = plate_cut_bolt, $fn = 16); - } - - // lower plate mount - translate ([0, lower_cut_y_offset, 0]) { - for (x = [-0.01, plate_width - plate_cut_width + 0.01]) { - // lower cut out is closer to 6mm than 6.5mm in cad drawings - translate ([x, -0.01, 0]) square ([plate_cut_width, plate_cut_height - 0.5]); - } - // I think the intention is for the screw holes to be centered over the cut out - for (x = [lower_bolt_x_offset, plate_width - lower_bolt_x_offset]) - translate ([x, plate_cut_height + lower_bolt_y_offset, 0]) circle (d = plate_cut_bolt, $fn = 16); - } - - // mount to wilson x-carriage - translate ([(plate_width - carriage_hole_spacing) / 2, carriage_y_offset, 0]) - for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) { - translate ([x, y, 0]) circle (d = carriage_bolt, $fn = 16); - } - - if (bump_strip) { - translate ([6, carriage_y_offset, 0]) - for (y = [0, carriage_hole_spacing]) { - translate ([0, y, 0]) circle (d = carriage_bolt, $fn = 16); - } - } - } -} - -difference () { - linear_extrude (height = plate_depth, convexity = 50) plate_outline (); - // after extruding, cut out spaces for M4 hex nuts (6 - 6.5mm deep, for two nuts) - translate ([(plate_width - carriage_hole_spacing) / 2, carriage_y_offset, plate_depth - carriage_nut_depth]) { - for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) { - translate ([x, y, 0]) linear_extrude (height = carriage_nut_depth + 0.01) nutHole (size = carriage_bolt, proj = 1); - } - } - - if (bump_strip) { - translate ([6, carriage_y_offset, plate_depth - carriage_nut_depth/2]) { - for (y = [0, carriage_hole_spacing]) { - translate ([0, y, 0]) linear_extrude (height = carriage_nut_depth/2 + 0.01) nutHole (size = carriage_bolt, proj = 1); - } - } - } -} +/* +min y = 0 +max y = 100 +min x = 1205 +max x = 1254 + +Makerfair X carriage plate adapter for the Wilson RepRap. +Copyright (c) 2015 Clinton Ebadi + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Measurements reverse engineered from +https://github.com/RickSisco/MakerFarm-Prusa-i3v-12-Inch + +Intended for use with the itty bitty dual extruder series. + +Source needs a good cleanup. Evil loops that don't take advantage of +the geometry of the object abound. + +major todo: + + - square hole placement is a total mess + +*/ + +use + +$fn = 64; + +carriage_height = 64; +carriage_width = 52; + +plate_width = 75; // wilson carriage is only 50mm wide! +plate_depth = 6; // wilson default depth = 8, makerfarm = 6 + +hole_tolerance = 0.25; // widen holes a bit, may still need to drill out + +plate_cut_height = 6.5; +plate_cut_width = 6; +plate_cut_distance = 13; +plate_cut_center = 25.1; +plate_cut_y_offset = 27; +plate_cut_bolt = 3 + hole_tolerance; +plate_cut_x_bolt_offset = 10.5 + plate_cut_bolt / 2; + +plate_extra_height = 4; // make plate a bit taller so it is structurally sound + +plate_height = plate_cut_height + plate_cut_y_offset + plate_extra_height; + +lower_cut_y_offset = 5.33; // 5.325 in CAD +lower_bolt_x_offset = 1.5 + plate_cut_bolt / 2; +lower_bolt_y_offset = 3.275 + plate_cut_bolt / 2; + +carriage_bolt = 4 + hole_tolerance; +carriage_hole_spacing = 23; +carriage_clearance = 20; // holes are 20mm from bottom of plate +carriage_y_offset = plate_cut_y_offset + plate_cut_height + carriage_clearance; +carriage_nut_depth = 3.2 + 3.2/2 + 0.1; // m4 nut depth + half of an m4 nut + tolerance + +corner_radius = 3; // round off the corners to make it look nicer + +shelf_mount (); +translate ([(plate_width - carriage_width) / 2, plate_height - plate_extra_height/2, 0]) carriage_mount (); + +// mount to wilson x-carriage +module carriage_mount () { + difference () { + linear_extrude (height = plate_depth, convexity = 8) { + // outline of plate + bolt holes + difference () { + translate ([corner_radius, corner_radius, 0]) { + minkowski () { + square ([carriage_width - corner_radius*2, carriage_height - corner_radius]); + circle (r = corner_radius); + } + } + + #translate ([(carriage_width - carriage_hole_spacing) / 2, (carriage_height - carriage_hole_spacing) /2, 0]) + for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) { + translate ([x, y, 0]) circle (d = carriage_bolt); + } + } + } + // after extruding, cut out spaces for M4 hex nuts. + translate ([(carriage_width - carriage_hole_spacing) / 2, (carriage_height - carriage_hole_spacing) /2, plate_depth - carriage_nut_depth]) { + for (x = [0, carriage_hole_spacing], y = [0, carriage_hole_spacing]) { + translate ([x, y, 0]) linear_extrude (height = carriage_nut_depth + 0.01) nutHole (size = carriage_bolt, proj = 1); + } + } + } +} + +// mount for makerfarm extruder shelf +module shelf_mount () { + linear_extrude (height = plate_depth, convexity = 8) { + difference () { + translate ([corner_radius, corner_radius, 0]) { + minkowski () { + square ([plate_width - corner_radius*2, plate_height - corner_radius*2]); + circle (r = corner_radius); + } + } + + // upper shelf mount + translate ([0, plate_cut_y_offset, 0]) { + for (x = [-0.01, plate_cut_width + plate_cut_distance, plate_cut_width*2 + plate_cut_distance + plate_cut_center, plate_cut_width*3 + plate_cut_distance*2 + plate_cut_center + 0.01]) + #translate ([x - hole_tolerance/2, 0, 0]) square ([plate_cut_width + hole_tolerance, plate_cut_height]); + + // looks like the bolt is at the midpoint between the cut outs + for (x = [plate_cut_x_bolt_offset, plate_width - plate_cut_x_bolt_offset]) + translate ([x, plate_cut_height / 2, 0]) circle (d = plate_cut_bolt + hole_tolerance); + } + + // lower shelf mount + translate ([0, lower_cut_y_offset, 0]) { + for (x = [plate_cut_width/2 - 0.01, plate_width - plate_cut_width/2 + 0.01]) { + // lower cut out is closer to 6mm than 6.5mm in cad drawings + translate ([x, plate_cut_height/2, 0]) square ([plate_cut_width, plate_cut_height - 0.5], center=true); + } + // I think the intention is for the screw holes to be centered over the cut out + for (x = [lower_bolt_x_offset, plate_width - lower_bolt_x_offset]) + translate ([x, plate_cut_height + lower_bolt_y_offset, 0]) circle (d = plate_cut_bolt + hole_tolerance); + } + } + } +}